package com.example.clientemodificarcliente;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;


import com.google.gson.Gson;

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

	

	EditText etNombre;
	EditText etApellidoM;
	EditText etApellidoP;
	EditText etCelular;
	EditText etCorreo;
	EditText etDireccion;
	EditText etRut;
	EditText etDV;

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		etNombre = (EditText)findViewById(R.id.editText1);
		etApellidoM = (EditText)findViewById(R.id.editText2);
		etApellidoP = (EditText)findViewById(R.id.editText3);
		etCelular = (EditText)findViewById(R.id.editText4);
		etCorreo = (EditText)findViewById(R.id.editText5);
		etDireccion = (EditText)findViewById(R.id.editText6);
		etRut = (EditText)findViewById(R.id.editText7);
		etDV = (EditText)findViewById(R.id.editText8);

		
		Button btn=(Button)findViewById(R.id.button1);
		
		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				System.out.println("clickeaste el boton!");
				System.out.println(mostrarJson());
				TareaWSModificacion2 tarea = new TareaWSModificacion2();
				tarea.execute();                
			}});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
	private class TareaWSModificacion2 extends AsyncTask<String,Integer,Boolean> {



		protected Boolean doInBackground(String... params) {

			boolean resul = true;
			System.out.println("llegamos a tareaWSModificacion2");
			final String NAMESPACE = "http://webservice";
			final String URL= "http://186.11.41.204:8083/WebServiceAplicado/services/ServicioMovil?wsdl";
			final String METHOD_NAME = "updateClienteByAll";
			final String SOAP_ACTION = "http://webservice/updateClienteByAll";

			SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
			
			//Ingreso contenido de los edit text a cliente por medio de su constructor
			
			ClienteVO oClienteVO = new ClienteVO(etNombre.getText().toString(), 
					etApellidoM.getText().toString(),
					etApellidoP.getText().toString(),
					etCelular.getText().toString(),
					etCorreo.getText().toString(),
					etDireccion.getText().toString(),
					etRut.getText().toString(),
					etDV.getText().toString());
			
			//AdministradorVO admin = new AdministradorVO(et2.getText().toString(),et.getText().toString());

			//paso cliente a archivo Json 
			Gson gson = new Gson();
			String clienteVO= gson.toJson(oClienteVO);
            
			//paso de condicion y cliente al request
			String condicion="rut='"+etRut.getText().toString()+"'";			
			request.addProperty("condicion",condicion);
			request.addProperty("json", clienteVO);
			
            
			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
			envelope.dotNet = true; 

			
			//agregar el request
			envelope.setOutputSoapObject(request);

			envelope.addMapping(NAMESPACE, "ClienteVO", oClienteVO.getClass());

			HttpTransportSE transporte = new HttpTransportSE(URL);

			try 
			{
				System.out.println("llegamos al try :B");
				transporte.call(SOAP_ACTION, envelope);

				SoapPrimitive resultado_xml =(SoapPrimitive)envelope.getResponse();
				String res = resultado_xml.toString();
				System.out.println(res);

				if(!res.equals("1"))
					resul = false;
			} 
			catch (Exception e) 
			{
				resul = false;

			}  

			return resul;
		}

	}
	
	
	public String mostrarJson(){
		try {
		
			String url = "http://"+"186.11.0.205"+":8083/ServerTA2/services/ServicioMovil?wsdl"; 
			// Metodo que queremos ejecutar en el servicio web
			String Metodo = "updateClienteByAll";
			// Namespace definido en el servicio web
			String namespace = "http://webservice";
			// namespace + metodo
			String accionSoap = "http://webservice/updateClienteByAll";
			// Modelo el request
		    SoapObject request = new SoapObject(namespace, Metodo);
			ClienteVO oClienteVO = new ClienteVO(etNombre.getText().toString(), 
					etApellidoM.getText().toString(),
					etApellidoP.getText().toString(),
					etCelular.getText().toString(),
					etCorreo.getText().toString(),
					etDireccion.getText().toString(),
					etRut.getText().toString(),
					etDV.getText().toString());
			
			//AdministradorVO admin = new AdministradorVO(et2.getText().toString(),et.getText().toString());

			//paso cliente a archivo Json 
			Gson gson = new Gson();
			String clienteVO= gson.toJson(oClienteVO);
			String condicion = 	"rut='"+etRut.getText().toString()+"'";
		    request.addProperty("condicion", condicion); // Paso parametros al WS
		    request.addProperty("json",clienteVO);
		    // Modelo el Sobre
		    SoapSerializationEnvelope sobre = new SoapSerializationEnvelope(SoapEnvelope.VER11);
		    sobre.dotNet = true;
		    sobre.setOutputSoapObject(request);
		 
		    // Modelo el transporte
		    HttpTransportSE transporte = new HttpTransportSE(url);
		 
		    // Llamada
		    transporte.call(accionSoap, sobre);
		 
		    // Resultado
		    SoapPrimitive resultado = (SoapPrimitive) sobre.getResponse();
		    
		    Log.i("Resultado", resultado.toString());
		    return resultado.toString();
		} catch (Exception e) {
		    Log.e("ERROR", e.getMessage());
		    return "false";
		}
	}
	

}
